package Assignment3;

import java.io.*;
import java.util.Scanner;

public class TestCopy {
    public static void main(String[] args) throws IOException{
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入原文件名：");
        String rawfile = scan.nextLine();
        System.out.println("请输入目标文件名：");
        String target = scan.nextLine();  // 目标文件

        File soFile = new File(rawfile);    // 取原文件(必须有内容)

        if (!soFile.exists()) {
            System.out.println("原文件 " + rawfile
                    + " 不存在");    // 原文件不存在
            System.exit(1);
        }
        //
        File targetFile = new File(target);   // 取目标文件

        if (targetFile.exists()) {
            System.out.println("目标文件 " + target
                    + " 已经存在");    // 目标文件已经存在
            System.exit(2);
        }

        //
        try (   // 释放资源try（）， 花括号try{}则是捕获因此
                BufferedInputStream input =
                        new BufferedInputStream(new FileInputStream(soFile));    // 创建输入流

                BufferedOutputStream output =    // BufferedOutputStream 提高程序读写的效率
                        new BufferedOutputStream(new FileOutputStream(targetFile));  // 创建输出流
                  // 创建输入流（目标文件的）
        ) {
            // 连续地从输入端读取一个字节并将其写入输出端（流）
            int r, numberOfByte = 0;
            while ((r = input.read()) != -1) {
                output.write(r ^ 8);   // 加密
                numberOfByte++;  // 统计字节
            }
            System.out.println("复制的字节数"+numberOfByte );   //复制的字节数
        }

    }
}
